ORACLE数据库根目录空间不足,进行表空间文件转移不占用根目录空间

您所在的位置:网站首页 oracle undo表空间不足 ORACLE数据库根目录空间不足,进行表空间文件转移不占用根目录空间

ORACLE数据库根目录空间不足,进行表空间文件转移不占用根目录空间

2023-07-12 18:09| 来源: 网络整理| 查看: 265

ORACLE数据库根目录空间不足,进行表空间文件转移不占用根目录空间 1.首先查看都有哪些表空间文件在根目录下 1.1.查看根目录占用情况 du -h --max-depth=1 /

会显示哪些目录占用多少空间,针对根目录下占用空间多的进行分析,如果存在数据库表空间文件在这些目录下,我们进行文件转移。 查看结果 除去系统文件目录,比如home文件下有上GB的文件存储,我们可以到此目录去查看是否有dbf文件或者我们看下一步操作,来判断表空间文件存储在哪?

1.2.两种方式查看表空间文件 1.2.1.使用linux查找命令在/home目录下去查找dbf文件 find /home -name *.dbf 1.2.2.以DBA用户登录ORACLE数据库进行表空间文件的模糊查询 select * from dba_data_files where file_name like '/home/%';

将查找出来的表空间文件以及对应的表空间名称记录下来,进行文件转移。 注:以上是查找根目录表空间的两种方法。

2.针对特定表空间文件进行文件转移(非系统表空间)

使用PLSQL以DBA用户登录对应的数据库,进行如下操作:

2.1.查看要改变的表空间的数据文件信息 select tablespace_name,file_name,online_status from dba_data_files where tablespace_name='表空间名称'; 2.2.将目标表空间设置为脱机状态 alter tablespace 表空间名称 offline;

查看表空间状态:

select tablespace_name,file_name,online_status from dba_data_files where tablespace_name='表空间名称'; 2.3.移动数据文件

在linux终端界面或者使用XSHELL等工具进行操作:

mv /home/oradata/SU01.DBF /dbdata/SU01.DBF 2.4.在数据库中修改表空间数据文件的路径 alter tablespace SU rename datafile '/home/oradata/SU01.DBF' to '/dbdata/SU01.DBF'; 2.5.修改该表空间为在线状态 alter tablespace SU online; 2.6.查看该表空间最后结果 select tablespace_name,file_name,online_status from dba_data_files where tablespace_name='SU';

注意,我们此时使用df -h可能看到根目录没有空间的变化,是因为存在占用进程的僵尸文件,我们需要重启数据库就能看到空间转移的效果:

# 切换oracle用户 su - oracle # 登录数据库 sqlplus / as sysdba # 关闭数据库 shutdown immediate; # 启动数据库 startup; 3.系统表空间移动

该方法需要数据库处于mount状态

3.1.关闭运行中的数据库 shutdown immediate; 3.2.启动数据库到mount状态 startup mount; 3.3.移动系统表空间(SYSTEM表空间)的数据文件 mv /home/oradata/orcl/SYSTEM01.DBF /dbdata/SYSTEM01.DBF 3.4.修改表空间数据文件的路径 alter database rename file '/home/oradata/orcl/SYSTEM01.DBF' to '/dbdata/SYSTEM01.DBF'; 3.5.启动数据库,打开实例 alter database open; 3.6.查看表空间修改结果 select tablespace_name,file_name,online_status from dba_data_files where tablespace_name='SYSTEM';


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3